/**
 *pop() 方法从数组中删除最后一个元素，并返回该元素的值。此方法会更改数组的长度。
 原理：pop() 方法从数组中删除并返回最后一个元素。
实现：可以巧妙地使用length属性完成这一功能，并且改变length的值之后，对应的索引属性自动消失
返回值：被删除的元素或者undefined

 * @returns undefined或被删除的元素
 */
Array.prototype.myPop = function () {
  if (!Array.isArray(this)) throw new TypeError("musted be called by array");

  if (this.length === 0) return undefined;

  let temp = this[this.length - 1];

  // 数组最后一个移除
  this.length--;
  return temp;
};

// egg
let arr = [1, 2, 3, 4];
console.log("[ arr ] >", arr.myPop());

let arr1 = [1, 2, 3, 4];
console.log("[ arr ] >", arr1.pop());
